﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace FrbaCommerce.Listado_Estadistico
{
    public partial class frm_listadoEstadistico : Form
    {
        public frm_listadoEstadistico()
        {
            InitializeComponent();
        }

        private void frm_listadoEstadistico_Load(object sender, EventArgs e)
        {
            BaseDeDatos baseDeDatos = BaseDeDatos.Instance;
            SqlCommand sqlCommand = new SqlCommand();
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.CommandText = "LOS_GDDES.SP_TRAER_ANIOS_DISPONIBLES";
            sqlCommand.CommandType = CommandType.StoredProcedure;
            DataTable dt_anios_disponibles = baseDeDatos.consulta(sqlCommand);
            cmb_anio.DataSource = dt_anios_disponibles;
            cmb_anio.DisplayMember = "ANIO";

            DataTable dt_listados = new DataTable();
            dt_listados.Columns.Add("ID_LISTADO");
            dt_listados.Columns.Add("LISTADO");
            dt_listados.Rows.Add(1, "Clientes con mayor cantidad de publicaciones sin calificar (TOP 5)");
            dt_listados.Rows.Add(2, "Vendedores con mayor facturación (TOP 5)");
            dt_listados.Rows.Add(3, "Vendedores con mayores calificaciones (TOP 5)");
            dt_listados.Rows.Add(4, "Vendedores con mayor cantidad de productos no vendidos (TOP 5)");
            cmb_tipoListado.DataSource = dt_listados;
            cmb_tipoListado.DisplayMember = "LISTADO";
            cmb_tipoListado.ValueMember = "ID_LISTADO";

            DataTable dt_trimestre = new DataTable();
            dt_trimestre.Columns.Add("ID_TRIMESTRE");
            dt_trimestre.Columns.Add("TRIMESTRE");
            dt_trimestre.Rows.Add(1, "1° Trimestre");
            dt_trimestre.Rows.Add(2, "2° Trimestre");
            dt_trimestre.Rows.Add(3, "3° Trimestre");
            dt_trimestre.Rows.Add(4, "4° Trimestre");
            cmb_trimestre.DataSource = dt_trimestre;
            cmb_trimestre.DisplayMember = "TRIMESTRE";
            cmb_trimestre.ValueMember = "ID_TRIMESTRE";
        }

        private void btn_visualizar_Click(object sender, EventArgs e)
        {
            BaseDeDatos baseDeDatos = BaseDeDatos.Instance;
            SqlCommand sqlCommand = new SqlCommand();
            sqlCommand.CommandType = CommandType.StoredProcedure;
            sqlCommand.Parameters.AddWithValue("@anio", cmb_anio.Text);

            int idListado = Convert.ToInt32(cmb_tipoListado.SelectedValue);
            switch (idListado) 
            {
                case 1:
                {
                    sqlCommand.CommandText = "LOS_GDDES.SP_LISTAR_CLIENTES_PUBLICACIONES_SIN_CALIFICAR";
                    break;
                }
                case 2:
                {
                    sqlCommand.CommandText = "LOS_GDDES.SP_LISTAR_VENDEDORES_MAYOR_FACTURACION";
                    break;
                }
                case 3:
                {
                    sqlCommand.CommandText = "LOS_GDDES.SP_LISTAR_VENDEDORES_MAYORES_CALIFICACIONES";
                    break;
                }
                case 4:
                {
                    sqlCommand.CommandText = "LOS_GDDES.SP_LISTAR_VENDEDORES_MAYOR_STOCK_SIN_VENDER";
                    break;
                }
            }
            
            int idTrimestre = Convert.ToInt32(cmb_trimestre.SelectedValue);
            switch (idTrimestre)
            {
                case 1:
                {
                    sqlCommand.Parameters.AddWithValue("@trimestre", 1);
                    break;
                }
                case 2: 
                {
                    sqlCommand.Parameters.AddWithValue("@trimestre", 2);
                    break;
                }
                case 3: 
                {
                    sqlCommand.Parameters.AddWithValue("@trimestre", 3);
                    break;
                }
                case 4: 
                {
                    sqlCommand.Parameters.AddWithValue("@trimestre", 4);
                    break;
                }           
            }

            DataTable dt_dgv_top5 = baseDeDatos.consulta(sqlCommand);
            dgv_top5.DataSource = dt_dgv_top5;
        }

        private void btn_cerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
